package com.bob.clan.wxconnector.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;

/**
 * 微信服务器转发的用户的消息与事件的对像类。
 * 本类严格按微信接口文档里批导的XML转化而来
 *
 * 哈哈，我知道微信为何要把属性名的首字段都大写，这虽然是违背了Java的命名规范，但只有这样才可以让@XmlElement工作
 */
@Data
@TableName
public class WxMsg{
    private String ToUserName;//开发者微信号
    private String FromUserName;//发送方账号（一个OpenID）
    private Long CreateTime; //消息创建时间 ******接收DTO消息时把int转为Date******
    private String MsgType;//消息类型
    private String Content;     //【文本消息】消息内容
    private String PicUrl;      //【图片消息】图片链接
    private Long MediaId;    //消息媒体id，可以调用获取临时素材接口拉取数据
    private String Format;      //【语音消息】语音格式，如amr，speex等
    private Long ThumbMediaId; //视频消息缩略图的媒体id，可以调用多媒体文件下载接口拉取数据。
    private Double Scale;       //【地理位置消息】地图缩放大小
    private String Label;       //【地理位置消息】地理位置信息
    private String Title;       //【链接消息】消息标题
    private String Description; //【链接消息】消息描述
    private String Url;         //【链接消息】消息链接
    private Long MsgId;//消息ID
    private Long MsgDataId; //消息的数据ID（消息如果来自文章时才有）
    private Long Idx; //多图文时第几篇文章，从1开始（消息如果来自文章时才有）
    private String Event;//事件种类，有SCAN，subscribe,unsubscribe
    private String EventKey; //事件KEY值，即创建二维码时的二维码scene_id
    private String Ticket; //二维码的ticket，可用来换取二维码图片
    private Double Latitude; //地理位置纬度
    private Double Longitude; //地理位置经度

    //以下信息需要变更名称，直接引用WxMsgDTO时MYSQL不识别
//    private Double Precision; //地理位置精度
    private Double locationPrecision; //地理位置精度
//    private Double Location_X;  //【地理位置消息】地理位置纬度
    private Double locationX;  //【地理位置消息】地理位置纬度
//    private Double Location_Y;  //【地理位置消息】地理位置经度
    private Double locationY;  //【地理位置消息】地理位置经度
//    private Integer MediaId16K; //16K采样率语音消息媒体id，可以调用获取临时素材接口拉取数据，返回16K采样率amr/speex语音。
    private Long MediaId16k;

    //以下信息是WxMsg独有的，WxMsgDTO没有这些属性
    private Date insertTime;


}
